package cc.mrbird.febs.accounting.mapper;

import cc.mrbird.febs.accounting.entity.DetailCost;
import cc.mrbird.febs.accounting.dto.detailCost.DetailCostDTO;
import cc.mrbird.febs.accounting.dto.standardSub.SingleExportDTO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 *  Mapper
 *
 * @author baoyinlei
 * @date 2021-09-28 23:27:01
 */
public interface DetailCostMapper extends BaseMapper<DetailCost> {
    List<DetailCostDTO> queryDetailCostByYearMonth(@Param("companyId") Long companyId,
                                                   @Param("projectId") Long projectId,
                                                   @Param("yearMonth") String yearMonth);
    void deleteDetailCostByYearMonthAndCode(@Param("codeList")List<String> codeList, @Param("yearMonth") String yearMonth);
    List<SingleExportDTO> querySingleExportData(@Param("projectId") Long projectId, @Param("year") String year);
    List<DetailCost> queryDetailCodeByProjectIdAndYear(@Param("companyId") Long companyId,
                                                       @Param("projectId") Long projectId,
                                                       @Param("yearMonths") List<String> yearMonths);

    List<DetailCost> queryDetailCodeNoCompany(@Param("projectId") Long projectId,
                                                       @Param("yearMonths") List<String> yearMonths);
    List<SingleExportDTO> querySubjectDetail();
    void deleteTaxRecord(@Param("projectId") Long projectId);
    void deleteByIds(@Param("ids") List<String> ids);
    void deleteByProjectId(@Param("ids") List<String> ids);

//    void deleteByCost();

    List<DetailCost> queryInputTaxAdjustment(@Param("projectIds") List<String> projectIds,
                                              @Param("yearMonths") List<String> yearMonths);
}